Key-based authentication is generally considered to be more secure than password-based authentication. Certain tools such as the Secure Shell (SSH) provide support for both key based authentication and password-based authentication. A general reference to SSH can be made, for example, to RFC 4253, “The Secure Shell (SSH) Transport Layer Protocol”, T. Ylonen and C. Lonvick, 2006.
To aid in validating identities SSH has key management capability and related agents. When configured with public key authentication, the key proves the user's identity to remote SSH hosts. An SSH-based identity consists of two parts: a public key and a private key. The private SSH key is the user's identity for outbound SSH connections and should be kept confidential. When a user initiates an SSH or SCP session to a remote host or server, he or she gains access to the remote host or server via a SSH client.
Private keys should never leave a client and should be encrypted using a “passphrase”. When private keys are lost or stolen new key pairs should be regenerated, and an enterprise can disable all password-based SSH authentication.
The management of private and public keys (key pairs) used by tools such as SSH is important to ensure enterprise security and compliance. A large enterprise, such as a corporation, a for-profit or a not-for-profit organization, or a governmental agency, can typically need to track some millions of key pairs. Misappropriated private keys thus can represent is a large security risk for the enterprise. Further, when a user who owns a private key leaves the enterprise it is important to invalidate/eliminate any corresponding public key stored on a server or servers of the enterprise. As a general rule, private keys should not be shared and ideally should be prevented from being shared
Currently available tools and techniques for key management do not adequately address these and other issues.